with v8.Class_External_String_Resource_Base;
package  v8.Class_External_Ascii_String_Resource is
   type External_Ascii_String_Resource is interface
     and v8.Class_External_String_Resource_Base.External_String_Resource_Base;
   type Pointer is access all External_Ascii_String_Resource'Class;
   -- An ExternalAsciiStringResource is a wrapper around an ascii
   -- string buffer that resides outside V8's heap. Implement an
   -- ExternalAsciiStringResource to manage the life cycle of the
   -- underlying buffer.  Note that the string data must be immutable
   -- and that the data must be strict 7-bit ASCII, not Latin1 or
   -- UTF-8, which would require special treatment internally in the
   -- engine and, in the case of UTF-8, do not allow efficient indexing.
   -- Use String::New or convert to 16 bit data for non-ASCII.


   function Data
     (this : External_Ascii_String_Resource
     ) return access char is abstract;
   -- The string data from the underlying buffer.

   function Length
     (this : External_Ascii_String_Resource
     ) return size_t is abstract;
   -- The number of ascii characters in the string.

end v8.Class_External_Ascii_String_Resource;
